package uy.org.softtech.cssuite.servicios;

import java.util.Locale;

import uy.org.softtech.cssuite.entidad.usuario.Usuario;
import uy.org.softtech.cssuite.excepciones.NotificacionNoEnviadaException;

/**
 * Interfaz por medio de la cual se envían las notificaciones por correo electrónico.
 * 
 * @author fabian.lobo
 */
public interface ServiciosCorreoElectronico {

	/**
	 * Notifica a un usuario por correo electrónico que se ha iniciado el proceso de cambio de credenciales.
	 * 
	 * @param usuario - El usuario a notificar
	 * @param token - Token generado para controlar el vencimiento del plazo
	 * @param locale - Localización para determinar el idioma a utilizar en la notificación.
	 * @throws NotificacionNoEnviadaException si la notificación no pudo ser enviada.
	 */
	void notificarSolicitudCambioCredenciales(Usuario usuario, String token, Locale locale) throws NotificacionNoEnviadaException;

}
